package com.wx.chapter13.homework;


/**
 * @Author : 佩萁
 * Description :
 * @Create : 2023/7/25 - 17:11
 */
public class HomeWork02 {
    public static void main(String[] args) {
        String name = "jack";
        String pwd = "123456";
        String email = "sq2s@sxasx.com";
        try {
            userRegister(name, pwd, email);
            System.out.println("恭喜你，注册成功！");//注册成功打印信息
        } catch (Exception e) {
            System.out.println(e.getMessage());//获取异常信息
        }
    }

    /**
     * 输入用户名、密码、邮箱，如果信息录入正确，则提示注册成功，否则生成异常对象
     * 要求：
     * (1) 用户名长度为2或3或4
     * (2) 密码的长度为6，要求全是数字  isDigital
     * (3) 邮箱中包含@和.   并且@在.的前面
     * <p>
     * 思路分析
     * (1) 先编写方法 userRegister(String name, String pwd, String email) {}
     * (2) 针对 输入的内容进行校核，如果发现有问题，就抛出异常，给出提示
     * (3) 单独的写一个方法，判断 密码是否全部是数字字符 boolean
     */
    public static void userRegister(String name, String pwd, String email) {
        //过关斩将思想，一步一步来
        if (name.length() < 2 || name.length() > 4) {
            throw new RuntimeException("用户名长度要求为2或3或4");
        }
        if (!(pwd.length() == 6 && isDigital(pwd))) {
            throw new RuntimeException("密码的长度为6，要求全是数字");
        }
        int i = email.indexOf('@');//获取对应字符的索引位置
        int j = email.indexOf('.');
        if (i > j || i < 0 || j < 0) {
            throw new RuntimeException("邮箱中包含@和.   并且@在.的前面");
        }
    }

    public static boolean isDigital(String str) {//判断字符串中是否全是数字
        char[] chars = str.toCharArray();//将字符串转换为字符数组然后进行遍历判断
        for (int i = 0; i < chars.length; i++) {
            if (chars[i] < '0' || chars[i] > '9') {//通过比较数字的最大值与最小值来判断是否为数字，方法独特！！！
                return false;
            }
        }
        return true;
    }
}
